#pragma once
#undef CreateWindow


class Window
{
private: 
	HWND m_hWnd;
	Engine * m_graphic;

	static const LPSTR const CLASS_NAME, TITLE;

	void RegistClass(void) throw(EngineException);
	void CreateWindow(void) throw(EngineException);
	

	LRESULT MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
	friend LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
public:
	Window(void) throw(EngineException);
	~Window(void);

	void Loop(void);
};




extern Window * wnd;